package com.atguigu.bigdata.scala.chapter04

object Scala05_Flow {

    def main(args: Array[String]): Unit = {

        val s = "Hello" // 'H', 'e', 'l', 'l', 'o'

        // Scala中可以将字符串当成字符数组进行处理
        for ( c : Char <- s ) {
            //println(c)
        }
        // 如果数据类型可以推断出来，那么数据类型可以省略的
        // 如果语法特征，马丁能识别出来，那么代码中就可以省略，由马丁在编译期间进行补全
        //val s1 = "World"
        for ( c <- s ) {
            //println(c)
        }

        // 集合在后面的章节中进行讲解
        // 1 to 5 表示范围集合，从1到5（包含5） => [1,2,3,4,5]
        // scala中的运算符其实就是对象的方法
        // 1 + 1 => 1.+(1)
        // 1 to 5 => 1.to(5)
        val r: Range = 1.to(5) // 这里的Range表示范围集合

        for ( i <- r ) {
            //println(i)
        }

        //5.to(1).by(-1) // 从5到1，[5,4,3,2,1]

        for ( i <- 5 to 1 by -1 ) {
            //println(i)
        }

        // 直接使用集合
        // Range(1, 5) => 表示范围集合，集合中的数据从1到5（不包含5）
        // 1 until 5   => 表示范围集合，集合中的数据从1到5（不包含5）
        for ( i <- Range(1, 5, 2) ) {
            println(i)
        }
        println("**************")
        for ( i <- 1 until 5 by 2 ) {
            println(i)
        }
    }
}
